package com.kzx.blog.service;

import com.kzx.blog.model.Blog;
import com.kzx.blog.model.Token;
import com.kzx.blog.service.model.BlogAddParam;
import com.kzx.blog.service.model.BlogPagingParam;
import com.kzx.blog.service.model.BlogUpdateParam;
import com.kzx.blog.util.PageUtils;

import java.util.List;

/**
 * @author kongz
 * @version 1.0 2021/11/29 10:39
 * @description blog service接口
 */
public interface IBlog {
    /**
     * 分页查询博客信息
     * @param param 查询条件
     * @return 分页查询结果
     */
    PageUtils<Blog> getBlogs(BlogPagingParam param);

    /**
     * 获取博客信息
     * @param id 博客id
     * @return 博客信息
     */
    Blog getBlog(int id);

    /**
     * 更改博客信息
     * @param blogUpdateParam 博客id, 正文
     * @param token 执行人信息
     * @return 影响条数
     */
    int update(BlogUpdateParam blogUpdateParam, Token token);

    /**
     * 根据id删除博客
     * @param blogId 博客id
     * @param token 执行人信息
     * @return 影响条数
     */
    int delete(int blogId, Token token);

    /**
     * 置顶博客
     * @param blogId 博客id
     * @param token 执行人信息
     * @return 影响条数
     */
    int top(int blogId, Token token);

    /**
     * 新增博客
     * @param blogAddParam 博客内容与类型
     * @param token 执行人信息
     * @return 新建博客编号
     */
    int add(BlogAddParam blogAddParam, Token token);
}
